Providing an instruction notification for navigation

ABSTRACT

A mechanism for providing an instruction notification for navigation. A method includes receiving destination data of a user device and generating default navigation instruction in view of the destination data. The default navigation instruction provides directions from a first location of the user device to a second location of the destination data. The method also includes setting the user device to a commute mode in view of the destination data. The commute mode includes generating a modified navigation instruction that modifies the default navigation instruction.

RELATED APPLICATIONS

This application is a continuation application of U.S. patentapplication Ser. No. 14/565,791, filed on Dec. 10, 2014, the entirecontents of which is hereby incorporated by reference.

TECHNICAL FIELD

The embodiments of the disclosure relate generally to a computer systemand, more specifically, relate to providing an instruction notificationfor navigation.

BACKGROUND

Currently, navigation systems provide an instruction notification fornavigation by presenting step-by-step directions based on rulesprogrammed into the devices. Some advanced versions of navigationsystems provide the user with an additional convenience of rerouting thedirections based on traffic information. However, these systems providevery frequent step-by-step directions, which are very disruptive to auser, especially when the user is familiar with the route. Furthermore,these step-by-step directions tend to repeatedly interrupt any otherapplications running on the device providing the navigation.

BRIEF DESCRIPTION OF THE DRAWINGS

The disclosure is understood more fully from the detailed descriptiongiven below and from the accompanying drawings of various embodiments ofthe disclosure. The drawings, however, should not be taken to limit thedisclosure to the specific embodiments, but are for explanation andunderstanding only.

FIG. 1 is a block diagram of a computer system in which the embodimentsof the disclosure may operate;

FIG. 2 is a block diagram of a computer system in which the embodimentsof the disclosure may operate;

FIG. 3 is a flow diagram of one embodiment of a method for providinginstruction notification for navigation; and

FIG. 4 illustrates a block diagram of one embodiment of a computersystem.

DETAILED DESCRIPTION

Embodiments of the disclosure are directed to providing an instructionnotification for navigation. Embodiments of the disclosure provide anavigation instructions notification component for processing andrendering instruction notifications for navigation to a user device. Aninstruction notification may include at least one significant directionto a destination. Such significant direction provides a highlight of thedaily commuting direction rather than full step-by-step directions.

A method of one embodiment includes receiving destination data of a userdevice and generating default navigation instruction in view of thedestination data. The default navigation instruction provides directionsfrom a first location of a user device to a second location of thedestination data. The method also includes setting the user device to a“commute mode” based on the received destination data. The commute modemay include generating a modified navigation instruction. The modifiednavigation instruction may be a modification of a default navigationinstruction generated in view of the destination data. The method alsoincludes providing the modified navigation instruction to the userdevice when the user device is set to the commute mode.

Prior solutions for providing notification for navigation presentseveral disadvantages. The navigation instructions of prior solutionsmay include frequent step-by-step directions that are very disruptive toa user, especially when the user is familiar with the route.Furthermore, these step-by-step directions tend to repeatedly-interruptany application(s) running on a user device providing the notification.Embodiments of the disclosure overcome these disadvantages by providinga modified notification to the navigation. The modified notification mayinclude at least one significant direction to a destination. Inaddition, the modified notification may prevent the notification ofstep-by-step directions to the user device as part of the navigation.Accordingly, the embodiments of the disclosure interpret a user'sintention provided on a user device. In one embodiment, the user'sintention is to reach the destination without disruptions of thestep-by-step directions on the user device. In another embodiment, theuser's intention is to receive the significant direction that adds valueto the route leading to the destination. Also, the embodiments of thedisclosure disrupt the user device when the user's intention is deemedsuboptimal to a goal of reaching the destination.

FIG. 1 is a block diagram illustrating a computer system 100 in whichembodiments of the present invention may be implemented. In oneembodiment, the computer system 100 may be a machine such as, forexample, any variety of user devices, such as a personal computer (PC),a laptop, a mobile phone, mobile smart phone, a tablet computer,handheld devices, netbooks, or any other computing device. Furthermore,computer system 100 may comprise a server device, such as a mainframeserver device or any other type of server device. The computer system100 comprises a hardware platform 116, on top of which runs an operatingsystem (OS) 104. The OS 104 may include Microsoft™, Linux™, Solaris™,Mac™ OS or any other suitable OS for managing operations on the computersystem 100. The OS 304 may also include a memory 150 and a graphicaluser interface (GUI) 160.

The hardware platform 106 may include one or more processing devices 107and a data store 108. In one embodiment, the data store 108 comprisesone or more hardware or software devices, which may be locatedinternally or externally to the computer system 100. Examples of datastore 108 may include, but are not limited to, random-access memory(RAM), non-volatile storage memory (e.g., Flash, EEPROM, solid statedrives (SSD), etc.), magnetic storage memory (e.g., one or more harddrives), and optical memory (e.g., CDs, DVD, BlueRay drives, etc.). Inaddition, hardware platform 106 may include additional hardware devices109, such as network interface cards (NICs), sound or video adaptors,photo/video cameras, printer devices, keyboards, displays or any othersuitable device intended to be coupled to a computer system.

In one embodiment, the hardware platform 106 may include one or moreuser devices 120 a-120 n. The user device 120 may be any variety ofdifferent computing devices, which include but are not limited to, alaptop computer, a handheld computer, a netbook, a desktop, aworkstation, a mobile device such as smart phone, a server device, atablet computing device, or any other type of computing device.

The computer system 100 may include one or more various softwareapplication programs 102 (i.e. applications) executed by the OS 104. Thevarious applications 102 may include any computer-executable programcapable of communicating with the OS 104. Some of these applications mayinclude, but are not limited to, voice mail applications, webapplications, Microsoft™ applications, an Eclipse integrated developmentenvironment (IDE), and/or other applications.

In one embodiment, the OS 104 includes a navigation instructionscomponent 110, which runs an application to generate default navigationinstructions for a user. In one embodiment, the application is a globalpositioning system (GPS)-based application, and in some cases may bereferred to as a navigation application or a maps application. Thedefault navigation instructions include step-by-step directions totravel to a destination. In one embodiment, the default navigationinstructions are generated based on destination data provided by theuser. The default navigation instruction may provide directions from afirst location of the user device 120 to a second location of thedestination data. For example, the destination data may include, but isnot limited to, an address, an intersection, a city, a zip code, a pointof interest, and so on. In one embodiment, the default navigationinstructions are automatically generated based on a time of day oftravel by the user. In one embodiment, the default navigationinstructions are automatically generated based on a distance anddirection of travel by the user. In one embodiment, the defaultnavigation instructions are stored in the memory 150.

In one embodiment, the OS 104 includes a navigation instructionnotification (NIN) component 112 to provide instruction notification forthe navigation. Instruction notification includes at least onesignificant direction to a destination. In one embodiment, the NINcomponent 112 receives the destination data of the user device 120. Uponreceipt of the destination data, the NIN component 112 sets thenavigation instructions component 110 to a “commute mode”. The commutemode may be a mode in which a user is familiar with the directionsprovided by the default navigation instruction. In one embodiment, thecommute mode includes preventing notification of at least a portion ofthe default navigation instruction(s) generated for the destinationdata. In one embodiment, the commute mode includes generating a modifiednavigation instruction. The modified navigation instruction causesmodification of the default navigation instruction(s).

For example, the modified navigation instruction may include at leastone significant direction to travel to the destination. The significantdirection is different from the step-by-step direction. The navigationinstructions component 110 may generate the modified navigationinstruction. In one embodiment, the NIN 112 determines whether to notifythe modified navigation instruction to the user device 120. In oneembodiment, the NIN 112 compares the modified navigation instructionwith the default navigation instruction based on parameters. Suchparameters include, but are not limited to, time, distance, roadcondition, user action, user condition etc. In one embodiment, thedefault navigation instructions are modified in real time.

In one embodiment, the NIN 112 notifies the user device 120 of themodified navigation instruction based on the comparison.

In one example, the NIN component 112 compares the time to travel adistance in the modified navigation instruction with the time to travelthe distance in the default navigation instruction. In one scenario, theNIN component 112 determines that the time to travel a distance in themodified navigation instruction is less than the time to travel thedistance in the default navigation instruction. The NIN component 112then notifies the user device 120 of the modified navigationinstruction. In one example, such modified navigation instruction mayinclude “Get off on next exit to arrive ten minutes sooner”. In anotherexample, such modified navigation instruction may include “Stay on thehighway to arrive at destination ten minutes sooner”.

In another scenario, the NIN component 112 determines that a user'saction with a vehicle, such as changing to a left lane on a highway, asper the default navigation instructions, may cause additional delay. TheNIN component 112 then notifies the user device 120 of the modifiednavigation instruction. In one example, such modified navigationinstruction may include “Change to a right lane on the highway to avoidadditional delay”. In another scenario, the NIN component 112 may beconfigured to avoid certain road and/or traffic conditions (e.g.,gridlock in a specific exit on the highway). If such road and/or trafficconditions are found to occur as part of the default navigationinstruction, the NIN component 112 may notify the user device 120 of themodified navigation instruction. In one example, such modifiednavigation instruction may include “Do not take the specific exit andtake the exit few miles later.

In one embodiment, the user is notified of the modified navigationinstruction in real time. In one embodiment, a notification of themodified navigation instruction is displayed on a user device 120 viathe GUI 160. In another embodiment, a notification of the modifiednavigation instruction is provided acoustically onto the user device 120via a loudspeaker (not shown) of the user device 120. In one embodiment,the loud speaker may be part of hardware platform 106.

FIG. 2 is a block diagram illustrating a computer system 200 in whichembodiments of the present invention may be implemented. The computersystem 200 is same as the computer system 100 and the user devices 120a-120 n are same as the user devices 220 a-220 n except in thisembodiment, the user devices 220 a-220 n are e external to the computersystem 100 that communicate over a network with the computer system 100.The network may be any type of communication network including, but notlimited to, a local area network (LAN), a wide area network (WAN) (e.g.,the Internet) or similar communications network. The network can includeany number of network devices and computing devices that are incommunication over any combination of wired and wireless communicationlines.

FIG. 3 is a flow diagram illustrating a method 300 for providingnavigation instructions notification according to an embodiment of thedisclosure. Method 300 may be performed by processing logic that maycomprise hardware (e.g., circuitry, dedicated logic, programmable logic,microcode, etc.), software (such as instructions run on a processingdevice), firmware, or a combination thereof. In one embodiment, method300 is performed by the NIN component 112 of FIG. 1.

Referring to FIG. 3, method 300 begins at block 302 where destinationdata is received from a user device. At block 304, a navigationapplication of the user device is set to a commute mode based on thedestination data. The commute mode may be a mode in which a user isfamiliar with the directions provided by the default navigationinstruction. In one embodiment, the commute mode includes preventingnotification of at least a portion of the default navigationinstruction(s) generated for the destination data. The defaultnavigation instruction includes step-by-step directions to travel to thedestination. In one embodiment, the default navigation instructions aregenerated based on the destination data provided by the user. Thedefault navigation instruction may provide directions from a firstlocation of the user device 120 to a second location of the destinationdata. For example, the destination data may include, but is not limitedto, an address, an intersection, a city, a zip code, a point ofinterest, and so on. In one embodiment, the default navigationinstructions are automatically generated based on time of day of travelby the user. Also, as discussed above, in one embodiment, the defaultnavigation instructions are automatically generated based on a distanceand direction of travel by the user.

In one embodiment, the commute mode includes generating a modifiednavigation instruction. As discussed above, modified navigationinstruction causes modification of a default navigation instruction. Forexample, the modified navigation instruction includes at least onesignificant direction to travel to the destination. The significantdirection is different from the step-by-step direction provided in thedefault navigation instruction.

At block 306, compare the modified navigation instruction of the commutemode with the default navigation instruction. Also, as discussed above,the comparison is determined based on parameters. Such parametersinclude, but are not limited to, time, distance, road condition, useraction, user condition etc. In one example, the time to travel adistance in the modified navigation instruction is compared with thetime to travel the distance in the default navigation instruction. Inone embodiment, the default navigation instructions are modified in realtime. At block 308, determine whether to send the modified navigationinstruction to the user device. This determination is made based on thecomparison. At block 310, a notification of the modified navigationinstruction is provided to the user device when it is determined atblock 308 to send the modified navigation instruction. In oneembodiment, a notification of the modified navigation instruction isdisplayed on the user device via a GUI, such as GUI 160. In anotherembodiment, a notification of the modified navigation instructionnotification is provided acoustically onto a user device via aloudspeaker.

In one embodiment, the default destination instruction is not sent tothe user device. In one embodiment, the modified navigation instructionis sent in place of the default destination instruction.

FIG. 4 illustrates a diagrammatic representation of a machine in theexample form of a computer system 400 within which a set ofinstructions, for causing the machine to perform any one or more of themethodologies discussed herein, may be executed. In alternativeembodiments, the machine may be connected (e.g., networked) to othermachines in a LAN, an intranet, an extranet, or the Internet. Themachine may operate in the capacity of a server or a client machine in aclient-server network environment, or as a peer machine in apeer-to-peer (or distributed) network environment. The machine may be apersonal computer (PC), a tablet PC, a set-top box (STB), a PersonalDigital Assistant (PDA), a cellular telephone, a web appliance, aserver, a network router, switch or bridge, or any machine capable ofexecuting a set of instructions (sequential or otherwise) that specifyactions to be taken by that machine. Further, while only a singlemachine is illustrated, the term “machine” shall also be taken toinclude any collection of machines that individually or jointly executea set (or multiple sets) of instructions to perform any one or more ofthe methodologies discussed herein.

The example computer system 400 includes a processing device 402, amemory 404 (e.g., read-only memory (ROM), flash memory, dynamic randomaccess memory (DRAM) (such as synchronous DRAM (SDRAM) or Rambus DRAM(RDRAM), etc.), a static memory 406 (e.g., flash memory, static randomaccess memory (SRAM), etc.), and a data storage device 418, whichcommunicate with each other via a bus 430.

Processing device 402 represents one or more general-purpose processingdevices such as a microprocessor, central processing unit, or the like.More particularly, the processing device may be complex instruction setcomputing (CISC) microprocessor, reduced instruction set computer (RISC)microprocessor, long instruction word (VLIW) microprocessor, orprocessor implementing other instruction sets, or processorsimplementing a combination of instruction sets. Processing device 402may also be one or more special-purpose processing devices such as anapplication specific integrated circuit (ASIC), a field programmablegate array (FPGA), a digital signal processor (DSP), network processor,or the like. The processing device 402 is configured to executenavigation instruction notification logic 422 for performing theoperations and steps discussed herein. In one embodiment, navigationinstruction notification component 112 described with respect to FIG. 1performs the navigation instruction notification logic 422.

The computer system 400 may further include a network interface device408. The computer system 400 also may include a video display unit 410(e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), analphanumeric input device 412 (e.g., a keyboard), a cursor controldevice 414 (e.g., a mouse), and a signal generation device 416 (e.g., aspeaker).

The data storage device 418 may include a machine-accessible storagemedium (or more specifically a computer-readable storage medium) 420 onwhich is stored one or more sets of instructions (e.g. navigationinstructions notification logic 422) embodying any one or more of themethodologies of functions described herein. The navigation instructionsnotification logic 422 may also reside, completely or at leastpartially, within the memory 406 and/or within the processing device 402during execution thereof by the computer system 400; the memory 406 andthe processing device 402 constituting machine-accessible storage media.In one embodiment, navigation instructions notification logic 422 is thesame as the navigation instructions notification component 112 of FIG.1.

The machine-readable storage medium 420 may also be used to store themessage notification processing logic 422 persistently containingmethods that call the above applications. While the machine-readablestorage medium 420 is shown in an example embodiment to be a singlemedium, the term “machine-accessible storage medium” should be taken toinclude a single medium or multiple media (e.g., a centralized ordistributed database, and/or associated caches and servers) that storethe one or more sets of instructions. The term “machine-accessiblestorage medium” shall also be taken to include any medium that iscapable of storing, encoding or carrying a set of instruction forexecution by the machine and that cause the machine to perform any oneor more of the methodologies of the disclosure. The term“machine-accessible storage medium” shall accordingly be taken toinclude, but not be limited to, solid-state memories, and optical andmagnetic media.

In the foregoing description, numerous details are set forth. It shouldbe apparent, however, that the disclosure may be practiced without thesespecific details. In some instances, structures and devices are shown inblock diagram form, rather than in detail, in order to avoid obscuringthe disclosure.

Some portions of the detailed descriptions, which follow, are presentedin terms of algorithms and symbolic representations of operations ondata bits within a computer memory. These algorithmic descriptions andrepresentations are the means used by those well-known in the dataprocessing arts to most effectively convey the substance of their workto others well-known in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of steps leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not typically, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared, and otherwise manipulated. It hasproven convenient at times, typically for reasons of common usage, torefer to these signals as bits, values, elements, symbols, characters,terms, numbers, or the like.

It should be borne in mind, however that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise, as apparent from the followingdiscussion, it is appreciated that throughout the description,discussions utilizing terms such as “receiving”, “storing”, “setting”,“comparing”, “generating”, “preventing”, “notifying”, “modifying”,“rendering”, “displaying” or the like, refer to the action and processesof a computer system, or similar electronic computing device thatmanipulates and transforms data represented as physical (electronic)quantities within the computer system's registers and memories intoother data similarly represented as physical quantities within thecomputer system memories or registers or other such information storage,transmission or display devices.

The disclosure also relates to an apparatus for performing theoperations herein. This apparatus may be constructed for the specificpurposes, or it may comprise a general purpose computer selectivelyactivated or reconfigured by a computer program stored in the computer.Such a computer program may be stored in a machine readable storagemedium, such as, but not limited to, any type of disk including floppydisks, optical disks, CD-ROMs, and magnetic-optical disks, read-onlymemories (ROMs), random access memories (RAMs), EPROMs, EEPROMs,magnetic or optical cards, or any type of media suitable for storingelectronic instructions, each coupled to a computer system bus.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general purposesystems may be used with programs in accordance with the teachingsherein, or it may prove convenient to construct an apparatus to performthe method steps. The structure for a variety of these systems willappear as set forth in the description below. In addition, thedisclosure is not described with reference to any particular programminglanguage. It will be appreciated that a variety of programming languagesmay be used to implement the teachings of the disclosure as describedherein.

The disclosure may be provided as a computer program product, orsoftware that may include a machine-readable medium having storedthereon instructions, which may be used to program a computer system (orother electronic devices) to perform a process according to thedisclosure. A machine-readable medium includes any mechanism for storingor transmitting information in a form readable by a machine (e.g., acomputer). For example, a machine-readable (e.g., computer-readable)medium includes a machine (e.g., a computer) readable storage medium(e.g., read only memory (“ROM”), random access memory (“RAM”), magneticdisk storage media, optical storage media, flash memory devices, etc.),etc.

It is to be understood that the above description is intended to beillustrative, and not restrictive. Many other embodiments will beapparent to those well-known in the art upon reading and understandingthe above description. Although the disclosure has been described withreference to specific examples of embodiments, it will be recognizedthat the disclosure is not limited to the embodiments described, but canbe practiced with modification and alteration within the spirit andscope of the appended claims. Accordingly, the specification anddrawings are to be regarded in an illustrative sense rather than arestrictive sense. The scope of the disclosure should, therefore, bedetermined with reference to the appended claims, along with the fullscope of equivalents to which such claims are entitled.

What is claimed is:
 1. A method comprising: setting, by a processing device, a commute mode associated with a user device in view of destination data, wherein the commute mode comprises generating a modified navigation instruction that modifies a default navigation instruction, wherein the default navigation instruction provides directions from a first location of the user device to a second location identified by the destination data; comparing the modified navigation instruction with the default navigation instruction in view of a parameter; and providing the modified navigation instruction in view of the comparison.
 2. The method of claim 1, further comprising: generating the default navigation instruction in view of the destination data.
 3. The method of claim 2, wherein the default navigation instruction is generated in view of a direction of travel by the user device and a distance from the first location to the second location identified by the destination data.
 4. The method of claim 1, further comprising: determining whether to provide the modified navigation instruction to the user device based on the comparison, wherein the modified navigation instruction is provided in view of the determination.
 5. The method of claim 1, wherein the default navigation instruction comprises step-by-step directions from the first location of the user device to the second location.
 6. The method of claim 5, wherein the modified navigation instruction comprises at least one significant direction from the first location of the user device to the second location of the user device, wherein the at least one significant direction is different from the step-by-step directions.
 7. The method of claim 1 wherein the commute mode prevents notification of the default navigation instruction.
 8. The method of claim 1, wherein the parameter comprises at least one of a time, a distance, a road condition, a user condition, or a user action.
 9. The method of claim 8, wherein comparing the modified navigation instruction with the default navigation instruction in view of the parameter comprises comparing a parameter associated with the modified navigation instruction with a parameter associated with the default navigation instruction.
 10. The method of claim 1, wherein the providing comprising displaying a notification of the modified navigation instruction on the user device.
 11. A system comprising: a memory; and a processing device, operatively coupled to the memory, the processing device to: set a commute mode associated with a user device in view of destination data, wherein the commute mode comprises generating a modified navigation instruction that modifies a default navigation instruction, wherein the default navigation instruction provides directions from a first location of the user device to a second location identified by the destination data; compare the modified navigation instruction with the default navigation instruction in view of a parameter; and provide the modified navigation instruction in view of the comparison.
 12. The system of claim 11, the processing device further to: generate the default navigation instruction in view of the destination data.
 13. The system of claim 12, wherein the default navigation instruction is generated in view of a direction of travel by the user device and a distance from the first location to the second location identified by the destination data.
 14. The system of claim 11, the processing device further to: determine whether to provide the modified navigation instruction to the user device based on the comparison, wherein the modified navigation instruction is provided in view of the determination.
 15. The system of claim 11, wherein the default navigation instruction comprises step-by-step directions from the first location of the user device to the second location.
 16. The system of claim 11, wherein the parameter comprises at least one of a time, a distance, a road condition, a user condition and a user action.
 17. A non-transitory computer-readable storage medium that provides instructions that, when executed by a processing device, cause the processing device to: set a commute mode associated with a user device in view of destination data, wherein the commute mode comprises generating a modified navigation instruction that modifies a default navigation instruction, wherein the default navigation instruction provides directions from a first location of the user device to a second location identified by the destination data; compare the modified navigation instruction with the default navigation instruction in view of a parameter; and provide the modified navigation instruction in view of the comparison.
 18. The non-transitory computer-readable storage medium of claim 17, the processing device further to: generate the default navigation instruction in view a direction of travel by the user device and a distance from the first location to the second location identified by the destination data.
 19. The non-transitory computer-readable storage medium of claim 17, the processing device further to: determine whether to provide the modified navigation instruction to the user device based on the comparison, wherein the modified navigation instruction is provided in view of the determination.
 20. The non-transitory computer-readable storage medium of claim 17, wherein the default navigation instruction comprises step-by-step directions from the first location of the user device to the second location. 